package cn.maihe.elg.operation.centers.quanzhou.dto.notice;

import cn.maihe.elg.operation.centers.quanzhou.dto.QuanzhouBaseReqDTO;
import lombok.Getter;
import lombok.Setter;

import javax.validation.constraints.NotBlank;
import java.math.BigDecimal;

/**
 * @Description 泉州中心投保成功通知请求DTO
 * @Author xxx
 * @Date 2025/08/31
 */
@Getter
@Setter
public class QuanzhouApplyResultNoticeReqDTO extends QuanzhouBaseReqDTO {
    
    /**
     * 业务流水号
     */
    @NotBlank(message = "业务流水号不能为空")
    private String cnewguid;
    
    /**
     * 保函（单）编号
     */
    @NotBlank(message = "保函编号不能为空")
    private String cpolicyno;
    
    /**
     * OFD保函（单）文件下载地址
     */
    @NotBlank(message = "OFD保函文件下载地址不能为空")
    private String cpolicyurl;
    
    /**
     * OFD保函文件的base64码
     */
    @NotBlank(message = "OFD保函文件base64码不能为空")
    private String baohanfile;
    
    /**
     * PDF保函（单）文件下载地址
     */
    @NotBlank(message = "PDF保函文件下载地址不能为空")
    private String cpolicyurlpdf;
    
    /**
     * 电子申请单下载地址（投保单/担保协议等）
     */
    @NotBlank(message = "电子申请单下载地址不能为空")
    private String orderurl;
    
    /**
     * 发票下载地址
     */
    @NotBlank(message = "发票下载地址不能为空")
    private String invoiceurl;
    
    /**
     * 发票代码
     */
    private String invoicecode;
    
    /**
     * 发票号码
     */
    private String invoiceno;
    
    /**
     * 出函时间，格式:yyyy-MM-dd HH:mm:ss
     */
    @NotBlank(message = "出函时间不能为空")
    private String generatetime;
    
    /**
     * 费率
     */
    @NotBlank(message = "费率不能为空")
    private BigDecimal frate;
    
    /**
     * 保费
     */
    @NotBlank(message = "保费不能为空")
    private BigDecimal fpremium;
    
    /**
     * 保函生效时间，格式:yyyy-MM-dd HH:mm:ss
     */
    @NotBlank(message = "保函生效时间不能为空")
    private String effecttime;
    
    /**
     * 保函失效时间，格式:yyyy-MM-dd HH:mm:ss
     */
    @NotBlank(message = "保函失效时间不能为空")
    private String expiretime;
    
    /**
     * 结构化数据XML文件下载地址
     */
    @NotBlank(message = "结构化数据XML文件下载地址不能为空")
    private String guaranteexmlurl;
    
    /**
     * 到账凭证下载地址
     */
    @NotBlank(message = "到账凭证下载地址不能为空")
    private String payfileurl;
    
    /**
     * 出函机构全称
     */
    @NotBlank(message = "出函机构全称不能为空")
    private String instname;
    
    /**
     * 出函机构统一代码
     */
    @NotBlank(message = "出函机构统一代码不能为空")
    private String instcode;
    
    /**
     * 出函机构联系人
     */
    @NotBlank(message = "出函机构联系人不能为空")
    private String instcontact;
    
    /**
     * 出函机构联系方式
     */
    @NotBlank(message = "出函机构联系方式不能为空")
    private String instcontacttel;
    
    /**
     * 投标企业联系人
     */
    @NotBlank(message = "投标企业联系人不能为空")
    private String crealname;
    
    /**
     * 投标企业联系方式
     */
    @NotBlank(message = "投标企业联系方式不能为空")
    private String cphone;
    
    /**
     * 基本户开户行
     */
    @NotBlank(message = "基本户开户行不能为空")
    private String cbank;
    
    /**
     * 开本户帐号
     */
    @NotBlank(message = "开户账号不能为空")
    private String cbankcardno;
    
    /**
     * 企业资质文件下载地址
     */
    @NotBlank(message = "企业资质文件下载地址不能为空")
    private String qyzzfile;
    
    /**
     * 营业执照文件下载地址
     */
    private String yezzfile;
    
    /**
     * 项目审批文号
     */
    @NotBlank(message = "项目审批文号不能为空")
    private String approvalcode;
    
    /**
     * 投资项目统一代码
     */
    @NotBlank(message = "投资项目统一代码不能为空")
    private String projectcode;
    
    /**
     * 招标人银行账号
     */
    @NotBlank(message = "招标人银行账号不能为空")
    private String cownerbankcode;
    
    /**
     * 招标人银行开户行
     */
    @NotBlank(message = "招标人银行开户行不能为空")
    private String cowneropenbank;
    
    /**
     * 招标人银行账户名称
     */
    @NotBlank(message = "招标人银行账户名称不能为空")
    private String cownerbankaccount;
    
    /**
     * 招标人联系人
     */
    @NotBlank(message = "招标人联系人不能为空")
    private String cownercontact;
    
    /**
     * 招标人联系人联系方式
     */
    @NotBlank(message = "招标人联系人联系方式不能为空")
    private String cownercontacttel;
    
    /**
     * 投标人联系人身份证件号码
     */
    @NotBlank(message = "投标人联系人身份证件号码不能为空")
    private String centerprisecontactcard;
    
    /**
     * 投标人联系人身份证类型
     */
    @NotBlank(message = "投标人联系人身份证类型不能为空")
    private String centerprisecontactcardtype;
    
    /**
     * 投标人地址
     */
    @NotBlank(message = "投标人地址不能为空")
    private String centerpriseaddress;
    
    /**
     * 投标人邮箱
     */
    @NotBlank(message = "投标人邮箱不能为空")
    private String centerpriseemail;
    
    /**
     * 投标人单位性质
     */
    private String centerprisedanweitype;
    
    /**
     * 投标人法定代表人姓名
     */
    @NotBlank(message = "投标人法定代表人姓名不能为空")
    private String centerprisepersonname;
    
    /**
     * 投标人法定代表人身份证件号码
     */
    @NotBlank(message = "投标人法定代表人身份证件号码不能为空")
    private String centerprisepersoncard;
    
    /**
     * 投标人法定代表人身份证类型
     */
    @NotBlank(message = "投标人法定代表人身份证类型不能为空")
    private String centerprisepersoncardtype;
    
    /**
     * 投标人法定代表人联系方式
     */
    @NotBlank(message = "投标人法定代表人联系方式不能为空")
    private String centerprisepersontel;
}